// user.js
import {
  get,
  post
} from '../http'
import {
  getStorageOpenid,
} from '@utils/storage_base_config'
import {
  getRole
} from '@utils/role'

/**
 * 发送短信验证码
 * @param {string} phone 手机号 
 */
export function sendSms(phone = '') {
  return post({
    url: '/v1/sms_captcha',
    data: {
      kind: getRole(),
      phone // 短信手机号
    }
  })
}

/**
 * 登录接口
 * @param {int} kind 用户类型 
 * @param {string} account 登录账号 
 * @param {string} captcha  验证码
 * @param {string} once_str  验证码校验字符串
 * @param {string} password  登录密码 长度8-32
 * @param {string} openid  微信openid
 */
export function login(data = {}, isAlertErr) {
  data = {
    kind: Number(getRole() || '1'),
    ...data
  }
  return post({
    url: '/v1/sign_in',
    data,
    isAlertErr,
  })
}

/**
 * 注册
 * @param {int} biz_id   站点信息
 * @param {int} kind   用户类型
 * @param {int} zone_id   所在地
 * @param {string} real_name  真实姓名
 * @param {string} phone   手机号
 * @param {string} captcha  验证码
 * @param {string} once_str  验证码校验字符串
 * @param {string} password  登录密码 长度8-32
 * @param {string} re_password  确认密码 长度8-32
 * @param {int} company_kind  公司类型
 * @param {string} cmompany_name  公司名称
 * @param {string} company_address  公司地址
 */
export function signUp(data = {}, headers = {}) {
  data = Object.assign({}, {
    biz_id: 0,
    kind: Number(getRole() || '1'),
    zone_id: 0,
    real_name: '',
    phone: '',
    captcha: '',
    once_str: '',
    password: '',
    re_password: '',
    company_kind: '',
    cmompany_name: '',
    company_address: '',
  }, data)
  return post({
    url: '/v1/sign_up',
    data,
    headers,
  })
}

/**
 * 退出
 * @param {String} openid openid
 */
export function sign_out() {
  return get({
    url: '/v1/sign_out',
    data: {
      openid: getStorageOpenid()
    }
  })
}

/**
 * 获取用户信息
 */
export function getUserInfo() {
  return get({
    url: '/v1/member'
  })
}

/**
 * 获取用户钱包信息
 */
export function getUserBalanceInfo() {
  return get({
    url: '/v1/member/balance'
  })
}
/**
 * 修改用户信息
 * @param {int} company_kind 公司类型 
 * @param {string} shop_name 公司名称 
 * @param {string} address 公司地址
 * @param {int} zone_id 所在地编码
 * @param {string} realname 真实姓名 
 */
export function editUserInfo(data = {
  company_kind: 0,
  shop_name: '',
  address: '',
  zone_id: 0,
  realname: '',
}) {
  return post({
    url: '/v1/member/save',
    data
  })
}

/**
 * 修改密码
 * @param {string} phone  手机号
 * @param {string} captcha  验证码
 * @param {string} once_str  验证码校验字符串
 * @param {string} password  登录密码
 * @param {string} re_password  确认密码
 */
export function resetPwd(data = {}) {
  data = Object.assign({}, {
    kind: Number(getRole() || '1'),
    phone: '',
    captcha: '',
    once_str: '',
    password: '',
    re_password: ''
  }, data)
  return post({
    url: '/v1/member/reset_password',
    data
  })
}

/**
 * 修改支付密码
 * @param {string} phone  手机号
 * @param {string} captcha  验证码
 * @param {string} once_str  验证码校验字符串
 * @param {string} password  登录密码
 * @param {string} re_password  确认密码
 */
export function resetPayPwd(data = {}) {
  data = Object.assign({}, {
    kind: Number(getRole() || '1'),
    phone: '',
    captcha: '',
    once_str: '',
    pay_password: '',
    re_password: ''
  }, data)
  return post({
    url: '/v1/member/reset_pay_password',
    data
  })
}

/**
 * 获取邀请同行二维码
 */
export function getMyQR() {
  return get({
    url: '/api/marketing/invitation_qrcode'
  })
}

/**
 * 获取邀请同行海报
 */
export function getMyPoster() {
  return get({
    url: '/api/marketing/invitation_poster'
  })
}

/**
 * 邀请明细
 */
export function getInviteList() {
  return get({
    url: '/api/marketing/invitation_records',
  })
}